c语言<编制程序,将两个字符串相连接>

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:16:09
本人刚学C 写了一点~不知道错在哪,请教~
#include <stdio.h>
void main()
{
char Link(char a[],char *b); /*Link函数声明*/
char a[100]="I am ";
char *b="a boy.";
Link(a,b); /*将b字符串连接到a后面*/
printf("%s\n",a); /*要求能显示:I am a boy.*/
}
/*请在这里编制Link函数:*/

char Link(char a[],char *b)
{
int i,l;
for(i=0;i<100;i++)
if(a[i]=='\0')
a[i]=*b;
return a[];
}
为什么为什么 这到底是为什么,怎么都不行呢???晕死了......英语太乱了,又不知道错在哪里,,,急啊!!!!最好能自己先编译一下,通过了发出来!!!!

不是吧 那我怎么不行呢?你QQ多少 我加你~这样说话太不方便了...

还是这个问题error C2440: 'return' : cannot convert from 'char []' to 'char'
不知道是什么意思

你主要有两个错误
1,return a[]是没有这种写法的,因为传递地址,所以不写return也是可以的,如果非要写,写成return a;
2,你的子函数中,a[i]=*b,*b这里就是a,所以你剩下的所有a[i]都为*b的植,改成a[i]=*b++,这样就好了。

#include <stdio.h>
void main()
{
char Link(char a[],char *b);
char a[100]="I am ";
char *b="a boy.";
Link(a,b);
printf("%s\n",a);
}

char Link(char a[],char *b)
{
int i,l;
for(i=0;i<100;i++)
if(a[i]=='\0')
a[i]=*b++;
return a;
}
有不明白的可以再问
哦,这样啊,把主函数改下,我用的TC 不好意思
#include <stdio.h>
int main()
{
char Link(char a[],char *b);
char a[100]="I am ";
char *b="a boy.";
Link(a,b);
printf("%s\n",a);
return 0;
}

char Link(char a[],char *b)
{
int i,l;
for(i=0;i<100;i++)
if(a[i]=='\0')
a[i]=*b++;
return a;
}
哥们,我用VC++6。0试了啊,没有问题的
114917088